using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("GameStrings")]
	public class GameStrings : MonoClass
	{
		[Attribute38("GameStrings.PluralNumber")]
		public class PluralNumber : MonoClass
		{
			public int m_index => method_2<int>("m_index");

			public int m_number => method_2<int>("m_number");

			public bool m_useForOnlyThisIndex => method_2<bool>("m_useForOnlyThisIndex");

			public PluralNumber(IntPtr address, string className)
				: base(address, className)
			{
			}

			public PluralNumber(IntPtr address)
				: this(address, "PluralNumber")
			{
			}
		}

		public static string s_UnknownName => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "GameStrings", "s_UnknownName");

		public static List<char> LANGUAGE_RULE_ARG_DELIMITERS => MonoClass.smethod_7<Class250<char>>(TritonHs.MainAssemblyPath, "", "GameStrings", "LANGUAGE_RULE_ARG_DELIMITERS")?.method_25();

		public static string NUMBER_PATTERN => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "GameStrings", "NUMBER_PATTERN");

		public GameStrings(IntPtr address, string className)
			: base(address, className)
		{
		}

		public GameStrings(IntPtr address)
			: this(address, "GameStrings")
		{
		}

		public static void LoadAll()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "GameStrings", "LoadAll");
		}

		public static void ReloadAll()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "GameStrings", "ReloadAll");
		}

		public static void WillReset()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "GameStrings", "WillReset");
		}

		public static string GetAssetPath(Locale locale, string fileName)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetAssetPath", locale, fileName);
		}

		public static bool HasKey(string key)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasKey", new object[1] { key });
		}

		public static string Get(string key)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "Get", key);
		}

		public static string ParseLanguageRules(string str)
		{
			return MonoClass.smethod_13(TritonHs.MainAssemblyPath, "", "GameStrings", "ParseLanguageRules", new Class276.Enum20[1] { Class276.Enum20.String }, str);
		}

		public static bool HasClassName(TAG_CLASS tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasClassName", new object[1] { tag });
		}

		public static string GetClassName(TAG_CLASS tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetClassName", tag);
		}

		public static string GetClassNameKey(TAG_CLASS tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetClassNameKey", tag);
		}

		public static KeywordTextDbfRecord GetKeywordTextRecord(GAME_TAG tag)
		{
			return MonoClass.smethod_15<KeywordTextDbfRecord>(TritonHs.MainAssemblyPath, "", "GameStrings", "GetKeywordTextRecord", new object[1] { tag });
		}

		public static bool HasKeywordName(GAME_TAG tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasKeywordName", new object[1] { tag });
		}

		public static string GetKeywordName(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetKeywordName", tag);
		}

		public static string GetKeywordNameKey(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetKeywordNameKey", tag);
		}

		public static bool HasKeywordText(GAME_TAG tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasKeywordText", new object[1] { tag });
		}

		public static string GetKeywordText(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetKeywordText", tag);
		}

		public static string GetKeywordTextKey(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetKeywordTextKey", tag);
		}

		public static bool HasRefKeywordText(GAME_TAG tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasRefKeywordText", new object[1] { tag });
		}

		public static string GetRefKeywordText(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetRefKeywordText", tag);
		}

		public static string GetRefKeywordTextKey(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetRefKeywordTextKey", tag);
		}

		public static bool HasCollectionKeywordText(GAME_TAG tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasCollectionKeywordText", new object[1] { tag });
		}

		public static string GetCollectionKeywordText(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCollectionKeywordText", tag);
		}

		public static string GetCollectionKeywordTextKey(GAME_TAG tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCollectionKeywordTextKey", tag);
		}

		public static bool HasRarityText(TAG_RARITY tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasRarityText", new object[1] { tag });
		}

		public static string GetRarityText(TAG_RARITY tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetRarityText", tag);
		}

		public static string GetRarityTextKey(TAG_RARITY tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetRarityTextKey", tag);
		}

		public static bool HasRaceName(TAG_RACE tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasRaceName", new object[1] { tag });
		}

		public static string GetRaceName(TAG_RACE tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetRaceName", tag);
		}

		public static string GetRaceNameKey(TAG_RACE tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetRaceNameKey", tag);
		}

		public static bool HasCardTypeName(TAG_CARDTYPE tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasCardTypeName", new object[1] { tag });
		}

		public static string GetCardTypeName(TAG_CARDTYPE tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCardTypeName", tag);
		}

		public static string GetCardTypeNameKey(TAG_CARDTYPE tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCardTypeNameKey", tag);
		}

		public static bool HasCardSetName(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasCardSetName", new object[1] { tag });
		}

		public static string GetCardSetName(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCardSetName", tag);
		}

		public static string GetCardSetNameKey(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCardSetNameKey", tag);
		}

		public static bool HasCardSetNameShortened(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasCardSetNameShortened", new object[1] { tag });
		}

		public static string GetCardSetNameShortened(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCardSetNameShortened", tag);
		}

		public static string GetCardSetNameKeyShortened(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCardSetNameKeyShortened", tag);
		}

		public static bool HasCardSetNameInitials(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasCardSetNameInitials", new object[1] { tag });
		}

		public static string GetCardSetNameInitials(TAG_CARD_SET tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetCardSetNameInitials", tag);
		}

		public static bool HasMultiClassGroupName(TAG_MULTI_CLASS_GROUP tag)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "HasMultiClassGroupName", new object[1] { tag });
		}

		public static string GetMultiClassGroupName(TAG_MULTI_CLASS_GROUP tag)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetMultiClassGroupName", tag);
		}

		public static string GetRandomTip(TipCategory tipCategory)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetRandomTip", tipCategory);
		}

		public static string GetTip(TipCategory tipCategory, int progress, TipCategory randomTipCategory)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "GetTip", tipCategory, progress, randomTipCategory);
		}

		public static List<string> GetListOfTips(TipCategory tipCategory)
		{
			return MonoClass.smethod_15<Class272>(TritonHs.MainAssemblyPath, "", "GameStrings", "GetListOfTips", new object[1] { tipCategory })?.method_25();
		}

		public static bool LoadCategory(GameStringCategory cat)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "LoadCategory", new object[1] { cat });
		}

		public static bool UnloadCategory(GameStringCategory cat)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GameStrings", "UnloadCategory", new object[1] { cat });
		}

		public static void CheckConflicts(GameStringTable table)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "GameStrings", "CheckConflicts", table);
		}

		public static string Find(string key)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "Find", key);
		}

		public static string ParseLanguageRule1(string str)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GameStrings", "ParseLanguageRule1", str);
		}

		public static int GetPluralIndex(int number)
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "GameStrings", "GetPluralIndex", new object[1] { number });
		}
	}
}
